using System;
using System.Collections.Generic;
using System.Text;

namespace ModWatch
{

	/// <summary>
	/// Defines methods that support tracking modifications of
	/// controls with a <see cref="ModWatch.ModManager" /> object.
	/// </summary>
	public interface IModWatcher
	{

		/// <summary>
		/// Gets the modification group to which the
		/// <see cref="ModWatch.IModWatcher"/> belongs.
		/// </summary>
		string ModGroup { get; }

		/// <summary>
		/// Saves the current value of the
		/// <see cref="ModWatch.IModWatcher"/>.
		/// </summary>
		void SaveChanges();

		/// <summary>
		/// Returns a value indicating whether any changes have been
		/// detected by the <see cref="ModWatch.IModWatcher"/>.
		/// </summary>
		/// <returns>true if a change has been detected, false otherwise.</returns>
		bool IsDirty();

	}

}
